--- import Layout from '../../layouts/Layout.astro'; import ProductCard from '../../components/ProductCard.astro'; import { getProductsFromDB, getPriceDropsFromDB } from '../../lib/products'; import type { Sneaker } from '../../data/mock'; // Type-only import, no runtime dependency const collectionMeta: Record = { 'sale': { title: 'Sale', description: 'De beste sneaker deals met meer dan 15% korting' }, 'trending': { title: 'Trending', description: 'De populairste sneakers van dit moment' }, 'new-arrivals': { title: 'Nieuw Binnen', description: 'De nieuwste sneakers, net toegevoegd' }, 'price-drops': { title: 'Prijsdalingen', description: 'Sneakers die recent in prijs zijn gedaald' }, 'bestsellers': { title: 'Bestsellers', description: 'De best verkochte sneakers' }, 'under-100': { title: 'Onder €100', description: 'Betaalbare sneakers onder de honderd euro' }, }; const { slug } = Astro.params; const meta = collectionMeta[slug!] || { title: slug, description: '' }; let collectionProducts: Sneaker[] = []; switch (slug) { case 'sale': case 'price-drops': collectionProducts = await getPriceDropsFromDB(24); break; case 'trending': case 'bestsellers': collectionProducts = await getProductsFromDB({ limit: 24, orderBy: 'popular' }); break; case 'new-arrivals': collectionProducts = await getProductsFromDB({ limit: 24, orderBy: 'newest' }); break; case 'under-100': collectionProducts = await getProductsFromDB({ limit: 24, orderBy: 'price_asc' }); collectionProducts = collectionProducts.filter(s => s.lowestPrice < 100); break; default: collectionProducts = await getProductsFromDB({ limit: 24 }); } ---

{meta.emoji} {meta.title}

{meta.description}

{collectionProducts.length} sneakers

{collectionProducts.map((sneaker, i) => ( ))}
{collectionProducts.length === 0 && (

Geen sneakers gevonden in deze collectie

)}